#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
#include <string.h>

// // 返回异常退出的对应值
// int main()
// {
//     int ret = 0;
//     char* p = (char*)malloc(1000*1000*1000*4);
//     if(p == NULL)
//     {
//         printf("malloc error: %d: %s\n",errno,strerror(errno));
//         ret = errno;
//     }
//     else 
//     {
//         // 使用申请的内存
//         printf("malloc success\n");
//     }
// }

// int main()
// {
//     // 打印所有的异常情况
//     for(int i = 0;i < 200;i++)
//     {
//         printf("%d: %s\n",i,strerror(i));
//     }
// }

// // 进程循环
// #define N 5
// 
// void runChild()
// {
//     int cnt = 10;
//     while(cnt)
//     {
//         printf("I am child: %d , ppid: %d\n",getpid(),getppid());
//         sleep(1);
//         cnt--;
//     }
// }
// 
// int main()
// {
//     int i = 0;
//     for(;i < N;i++)
//     {
//         pid_t id = fork();
//         if(id == 0)
//         {
//             // 打印子进程
//             runChild();
//             exit(0);
//         }
//     }
//     sleep(1000);
// 
//     return 0;
// }

